home *** CD-ROM | disk | FTP | other *** search
- /********************************************************************************
-
- Gnucleus - A node application for the Gnutella network
- Copyright (C) 2000 John Marshall
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- For support, questions, comments, etc...
- E-Mail:
- swabby@c0re.net
-
- Address:
- 21 Cadogan Way
- Nashua, NH, USA 03062
-
- ********************************************************************************/
-
- // PrefBandwidth.cpp : implementation file
- //
-
- #include "stdafx.h"
- #include "Gnucleus.h"
- #include "GnucleusDoc.h"
- #include "PrefBandwidth.h"
-
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
-
- /////////////////////////////////////////////////////////////////////////////
- // CPrefBandwidth property page
-
- IMPLEMENT_DYNCREATE(CPrefBandwidth, CPropertyPage)
-
- CPrefBandwidth::CPrefBandwidth() : CPropertyPage(CPrefBandwidth::IDD)
- {
- Doc = NULL;
-
- //{{AFX_DATA_INIT(CPrefBandwidth)
- //}}AFX_DATA_INIT
- }
-
- CPrefBandwidth::~CPrefBandwidth()
- {
- }
-
- void CPrefBandwidth::DoDataExchange(CDataExchange* pDX)
- {
- CPropertyPage::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CPrefBandwidth)
- DDX_Control(pDX, IDC_CHECK_DROP_DL, m_chkDropDL);
- DDX_Control(pDX, IDC_CHECK_DROP_UL, m_chkDropUL);
- DDX_Control(pDX, IDC_EDIT_TOTAL_UL, m_ebTotalUL);
- DDX_Control(pDX, IDC_EDIT_TOTAL_BW, m_ebTotalBW);
- DDX_Control(pDX, IDC_CHECK_TOTAL_UL, m_chkTotalUL);
- DDX_Control(pDX, IDC_CHECK_TOTAL_BW, m_chkTotalBW);
- //}}AFX_DATA_MAP
- }
-
-
- BEGIN_MESSAGE_MAP(CPrefBandwidth, CPropertyPage)
- //{{AFX_MSG_MAP(CPrefBandwidth)
- ON_BN_CLICKED(IDC_CHECK_DROP_DL, OnCheckDropDl)
- ON_BN_CLICKED(IDC_CHECK_DROP_UL, OnCheckDropUl)
- ON_BN_CLICKED(IDC_CHECK_TOTAL_BW, OnCheckTotalBw)
- ON_EN_CHANGE(IDC_EDIT_TOTAL_BW, OnChangeEditTotalBw)
- ON_BN_CLICKED(IDC_CHECK_TOTAL_UL, OnCheckTotalUl)
- ON_EN_CHANGE(IDC_EDIT_TOTAL_UL, OnChangeEditTotalUl)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CPrefBandwidth message handlers
-
- BOOL CPrefBandwidth::OnInitDialog()
- {
- CPropertyPage::OnInitDialog();
-
- Doc = (CGnucleusDoc *) ((CGnucleusApp *) AfxGetApp())->MasterDoc;
-
- // Auto drop downloads
- if(Doc->m_AutoDropDL)
- m_chkDropDL.SetCheck(1);
-
- // Auto drop uploads
- if(Doc->m_AutoDropUL)
- m_chkDropUL.SetCheck(1);
-
- // Limit total bandwidth
- if(Doc->m_LimitTotal)
- {
- m_chkTotalBW.SetCheck(1);
- m_ebTotalBW.SetWindowText( DWrdtoStr(Doc->m_LimitTotal) );
- }
- else
- {
- m_ebTotalBW.SetWindowText("Unlim.");
- m_ebTotalBW.EnableWindow(FALSE);
- }
-
- // Limit upload bandwidth
- if(Doc->m_LimitUp)
- {
- m_chkTotalUL.SetCheck(1);
- m_ebTotalUL.SetWindowText( DWrdtoStr(Doc->m_LimitUp) );
- }
- else
- {
- m_ebTotalUL.SetWindowText("Unlim.");
- m_ebTotalUL.EnableWindow(FALSE);
- }
-
- // Set visual bandwidth meter preference
- if(Doc->m_BwVisual == 1)
- ((CButton *) GetDlgItem(IDC_RADIO_TEXT))->SetCheck(1);
-
- else if(Doc->m_BwVisual == 2)
- ((CButton *) GetDlgItem(IDC_RADIO_METER))->SetCheck(1);
-
- else if(Doc->m_BwVisual == 3)
- ((CButton *) GetDlgItem(IDC_RADIO_HISTOGRAM))->SetCheck(1);
-
- else
- ((CButton *) GetDlgItem(IDC_RADIO_TEXT))->SetCheck(1);
-
-
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
-
- void CPrefBandwidth::OnCheckDropDl()
- {
- SetModified();
- }
-
- void CPrefBandwidth::OnCheckDropUl()
- {
- SetModified();
- }
-
- void CPrefBandwidth::OnCheckTotalBw()
- {
- if(m_chkTotalBW.GetCheck())
- {
- m_ebTotalBW.SetWindowText( DWrdtoStr(Doc->m_LimitTotal) );
- m_ebTotalBW.EnableWindow();
- }
- else
- {
- m_ebTotalBW.SetWindowText( "Unlim." );
- m_ebTotalBW.EnableWindow(FALSE);
- }
-
- SetModified();
- }
-
- void CPrefBandwidth::OnChangeEditTotalBw()
- {
- SetModified();
- }
-
- void CPrefBandwidth::OnCheckTotalUl()
- {
- if(m_chkTotalUL.GetCheck())
- {
- m_ebTotalUL.SetWindowText( DWrdtoStr(Doc->m_LimitUp) );
- m_ebTotalUL.EnableWindow();
- }
- else
- {
- m_ebTotalUL.SetWindowText("Unlim.");
- m_ebTotalUL.EnableWindow(FALSE);
- }
-
- SetModified();
- }
-
- void CPrefBandwidth::OnChangeEditTotalUl()
- {
- SetModified();
- }
-
- BOOL CPrefBandwidth::OnApply()
- {
- CString store;
-
- // Auto drop downloads
- if(m_chkDropDL.GetCheck())
- Doc->m_AutoDropDL = 1;
- else
- Doc->m_AutoDropDL = 0;
-
- // Auto drop uploads
- if(m_chkDropUL.GetCheck())
- Doc->m_AutoDropUL = 1;
- else
- Doc->m_AutoDropUL = 0;
-
- // Limit total bandwidth
- if(m_chkTotalBW.GetCheck())
- {
- m_ebTotalBW.GetWindowText(store);
-
- if(store != "")
- Doc->m_LimitTotal = atoi(store);
- }
- else
- {
- Doc->m_LimitTotal = 0;
- }
-
- // Limit upload bandwidth
- if(m_chkTotalUL.GetCheck())
- {
- m_ebTotalUL.GetWindowText(store);
-
- if(store != "")
- Doc->m_LimitUp = atoi(store);
- }
- else
- {
- Doc->m_LimitUp = 0;
- }
-
- // Set visual bandwidth meter preference
-
- if( ((CButton *) GetDlgItem(IDC_RADIO_TEXT))->GetCheck())
- Doc->m_BwVisual = 1;
-
- else if( ((CButton *) GetDlgItem(IDC_RADIO_METER))->GetCheck())
- Doc->m_BwVisual = 2;
-
- else if( ((CButton *) GetDlgItem(IDC_RADIO_HISTOGRAM))->GetCheck())
- Doc->m_BwVisual = 3;
-
- else
- Doc->m_BwVisual = 1;
-
-
- return CPropertyPage::OnApply();
- }
-
-